home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d3 / db4less3.arc / CUSTOMER.LBG < prev    next >
Text File  |  1990-06-16  |  5KB  |  265 lines

  1. * Program............: D:\DBSYS\CLASSES\BT4W\CUSTOMER.LBG
  2. * Date...............: 11-17-88
  3. * Version............: dBASE IV, Label 1
  4. *
  5. * Label Specifics:
  6. *   Wide - 35
  7. *   Tall - 5
  8. *   Indentation - 0
  9. *   Number across - 2
  10. *   Space between - 2
  11. *   Lines between - 1
  12. *   Blankable lines - 2
  13. *   Print formatted - 4
  14. *
  15. PARAMETER ll_sample
  16. *-- Set printer variables for this procedure only
  17. PRIVATE _peject, _ploffset, _wrap
  18.  
  19. *-- Test for End of file
  20. IF EOF()
  21.    RETURN
  22. ENDIF
  23.  
  24. IF SET("TALK")="ON"
  25.    SET TALK OFF
  26.    gc_talk="ON"
  27. ELSE
  28.    gc_talk="OFF"
  29. ENDIF
  30. gc_space = SET("SPACE")
  31. SET SPACE OFF
  32. gc_time=TIME()      && system time for predefined field
  33. gd_date=DATE()      && system date  "    "    "     "
  34. gl_fandl=.F.        && first and last record flag
  35. gl_prntflg=.T.      && Continue printing flag
  36. gn_column=1
  37. gn_element=0
  38. gn_line=1
  39. gn_memowid=SET("MEMOWIDTH")
  40. SET MEMOWIDTH TO 254
  41. gn_page=_pageno     && capture page number for multiple copies
  42. _plineno=0
  43. _wrap = .F.
  44.  
  45. IF ll_sample
  46.    DO Sample
  47.    IF LASTKEY() = 27
  48.       RETURN
  49.    ENDIF
  50. ENDIF
  51.  
  52. *-- Setup Environment
  53. ON ESCAPE DO prnabort
  54.  
  55. *-- Initialize array(s) for 2 across labels
  56. DECLARE isfound[1]
  57. DECLARE tmp4lbl[1,6]
  58. DECLARE gn_line2[2]
  59.  
  60. PRINTJOB
  61.  
  62.  
  63. *-- set page number for multiple copies
  64. _pageno=gn_page
  65.  
  66. DO WHILE FOUND() .AND. .NOT. EOF() .AND. gl_prntflg
  67.    STORE .F. TO isfound[1]
  68.    tmp4lbl[1,1]=CUSTNAME
  69.    tmp4lbl[1,2]=ADDRESS
  70.    tmp4lbl[1,3]=CITY
  71.    tmp4lbl[1,4]=STATE
  72.    tmp4lbl[1,5]=ZIP
  73.    tmp4lbl[1,6]=CONTACT
  74.    CONTINUE
  75.    IF FOUND() .AND. .NOT. EOF()
  76.       isfound[1]=.T.
  77.    ENDIF
  78.    gn_line=3
  79.  
  80.    *-- Check for blank lines
  81.    DO chk4null WITH 0, 2, 4
  82.  
  83.    *-- Column 1
  84.    ?? tmp4lbl[1,3] PICTURE "@T" AT 0 ;
  85.    ,", " ;
  86.    ,tmp4lbl[1,4] PICTURE "@T" ;
  87.    ," " ;
  88.    ,tmp4lbl[1,5] PICTURE "@T" ,
  89.    *-- Column 2
  90.    IF isfound[1]
  91.       ?? CITY PICTURE "@T" AT 37 ;
  92.       ,", " ;
  93.       ,STATE PICTURE "@T" ;
  94.       ," " ;
  95.       ,ZIP PICTURE "@T" 
  96.    ENDIF
  97.    ?
  98.    ?
  99.    *-- Column 1
  100.    ?? "ATTN: " AT 0 ;
  101.    ,tmp4lbl[1,6] PICTURE "@T XXXXXXXXXXXXXXXXXXXXXXXXXXXX" AT 7 ,
  102.    *-- Column 2
  103.    IF isfound[1]
  104.       ?? "ATTN: " AT 37 ;
  105.       ,CONTACT PICTURE "@T XXXXXXXXXXXXXXXXXXXXXXXXXXXX" AT 44 
  106.    ENDIF
  107.    ?
  108.    DO WHILE gn_line < 6
  109.       ?
  110.       gn_line=gn_line+1
  111.    ENDDO
  112.    CONTINUE
  113. ENDDO
  114.  
  115. IF .NOT. gl_prntflg
  116.    SET MEMOWIDTH TO gn_memowid
  117.    SET SPACE &gc_space.
  118.    SET TALK &gc_talk.
  119.    ON ESCAPE
  120.    RETURN
  121. ENDIF
  122.  
  123. ENDPRINTJOB
  124.  
  125. SET MEMOWIDTH TO gn_memowid
  126. SET SPACE &gc_space.
  127. SET TALK &gc_talk.
  128. ON ESCAPE
  129. RETURN
  130. * EOP: D:\DBSYS\CLASSES\BT4W\CUSTOMER.LBG
  131.  
  132. PROCEDURE prnabort
  133. gl_prntflg=.F.
  134. RETURN
  135. * EOP: prnabort
  136.  
  137. *
  138. *-- The next 4 function files are for blank line checking
  139.  
  140. FUNCTION ___01
  141. lc_ret=.F.
  142.  
  143. *-- Test for blank line
  144. IF LEN(TRIM( tmp4lbl[1,1] )) > 0
  145.    ll_output=.T.
  146.    ?? tmp4lbl[1,1] PICTURE "@T" AT 0 ,
  147. ELSE
  148.    lc_ret=.T.
  149. ENDIF
  150.  
  151. RETURN lc_ret
  152.  
  153. FUNCTION ___02
  154. lc_ret=.F.
  155.  
  156. *-- Column 2
  157. IF isfound[1]
  158.    *-- Test for blank line
  159.    IF LEN(TRIM( CUSTNAME )) > 0
  160.       ll_output=.T.
  161.       ?? CUSTNAME PICTURE "@T" AT 37 
  162.    ELSE
  163.       lc_ret=.T.
  164.    ENDIF
  165. ENDIF
  166.  
  167. RETURN lc_ret
  168.  
  169. FUNCTION ___11
  170. lc_ret=.F.
  171.  
  172. *-- Test for blank line
  173. IF LEN(TRIM( tmp4lbl[1,2] )) > 0
  174.    ll_output=.T.
  175.    ?? tmp4lbl[1,2] PICTURE "@T" AT 0 ,
  176. ENDIF
  177.  
  178. RETURN lc_ret
  179.  
  180. FUNCTION ___12
  181. lc_ret=.F.
  182.  
  183. *-- Column 2
  184. IF isfound[1]
  185.    *-- Test for blank line
  186.    IF LEN(TRIM( ADDRESS )) > 0
  187.       ll_output=.T.
  188.       ?? ADDRESS PICTURE "@T" AT 37 
  189.    ENDIF
  190. ENDIF
  191.  
  192. RETURN lc_ret
  193.  
  194. PROCEDURE chk4null
  195. *-- Parameters:
  196. *
  197. *-- 1) line number on the design surface
  198. *-- 2) maximum number of printable lines
  199. *-- 3) parameter 2 times number of labels across
  200. *
  201. PARAMETERS ln_line, ln_nolines, ln_element
  202. gn_element=0
  203. gn_line2[1]=ln_line
  204. gn_line2[2]=ln_line
  205. lc_temp=SPACE(7)
  206. ll_output=.F.
  207. DO WHILE gn_element < ln_element
  208.    gn_column=1
  209.    ll_output=.F.
  210.    DO WHILE gn_column <= 2
  211.       IF gn_line2[gn_column] < ln_line+ln_nolines
  212.          lc_temp=LTRIM(STR(gn_line2[gn_column]))+LTRIM(STR(gn_column))
  213.          DO WHILE ___&lc_temp.()
  214.             gn_element=gn_element+1
  215.             gn_line2[gn_column]=gn_line2[gn_column]+1
  216.             lc_temp=LTRIM(STR(gn_line2[gn_column]))+LTRIM(STR(gn_column))
  217.          ENDDO
  218.          gn_element=gn_element+1
  219.          gn_line2[gn_column]=gn_line2[gn_column]+1
  220.       ENDIF
  221.       gn_column=gn_column+1
  222.    ENDDO
  223.    IF ll_output
  224.      ?
  225.      gn_line=gn_line+1
  226.    ENDIF
  227. ENDDO
  228. RETURN
  229. * EOP: chk4null
  230.  
  231. PROCEDURE SAMPLE
  232. PRIVATE x,y,choice
  233. DEFINE WINDOW w4sample FROM 15,20 TO 17,60 DOUBLE
  234. choice="Y"
  235. x=0
  236. DO WHILE choice = "Y"
  237.    y=0
  238.    ?
  239.    DO WHILE y < 5
  240.       x=0
  241.       DO WHILE x < 2
  242.          ?? REPLICATE("X",35)+SPACE(2)
  243.          x=x+1
  244.       ENDDO
  245.       ?
  246.       y=y+1
  247.    ENDDO
  248.    x=0
  249.    DO WHILE x < 1
  250.       ?
  251.       x=x+1
  252.    ENDDO
  253.    ACTIVATE WINDOW w4sample
  254.    @ 0,3 SAY "Do you want more samples? (Y/N)";
  255.    GET choice PICTURE "!" VALID choice $ "NY"
  256.    READ
  257.    DEACTIVATE WINDOW w4sample
  258.    IF LASTKEY() = 27
  259.       EXIT
  260.    ENDIF
  261. ENDDO
  262. RELEASE WINDOW w4sample
  263. RETURN
  264. * EOP: SAMPLE
  265.